//系统设置包括：显示设置、固定页眉和侧边栏标志

import defaultSettings from '@/settings'

const { showSettings, fixedHeader, sidebarLogo } = defaultSettings

const state = {
  // 显示设置，默认从配置文件中读取
  showSettings: showSettings,
  // 是否固定页眉，默认从配置文件中读取
  fixedHeader: fixedHeader,
  // 侧边栏标志是否显示，默认从配置文件中读取
  sidebarLogo: sidebarLogo
}

const mutations = {
  // 修改设置项的方法
  CHANGE_SETTING: (state, { key, value }) => {
    // eslint-disable-next-line no-prototype-builtins
    // 检查设置项是否存在于state对象中
    if (state.hasOwnProperty(key)) {
      // 修改对应设置项的值
      state[key] = value
    }
  }
}

const actions = {
  // 修改设置项的动作方法
  changeSetting({ commit }, data) {
    // 触发CHANGE_SETTING mutation来修改设置项
    commit('CHANGE_SETTING', data)
  }
}

export default {
  namespaced: true,
  state,
  mutations,
  actions
}
